package cn.tedu.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class JDBCReg {
    public static void main(String[] args) {
    try(Connection connection = DBUtil.getConnection();){

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = scanner.nextLine();
        System.out.println("请输入密码:");
        String password = scanner.nextLine();
        System.out.println("请输入昵称:");
        String nickname = scanner.nextLine();
        System.out.println("请输入年龄:");
        String age = scanner.nextLine();

        String sql1 = "SELECT username FROM userinfo WHERE username = ?";
        PreparedStatement ps1 = connection.prepareStatement(sql1);

        ps1.setString(1,username);
        ResultSet rs1 = ps1.executeQuery();

        if(rs1.next()){
            System.out.println("用户名已存在");
        }else{
            String sql2 = "INSERT INTO userinfo(username,password,nickname,age) VALUES(?,?,?,?)";
            PreparedStatement ps2 = connection.prepareStatement(sql2);

            ps2.setString(1,username);
            ps2.setString(2,password);
            ps2.setString(3,nickname);
            ps2.setString(4,age);

            int i = ps2.executeUpdate();
            if(i>0){
                System.out.println("注册成功");
            }else{
                System.out.println("请稍后再尝试");
            }
        }
    }catch(SQLException e){
        throw new RuntimeException(e);

    }
}
}
/*
package cn.tedu.jdbc; // 定义程序的包名

import java.sql.Connection; // 导入数据库连接类
import java.sql.PreparedStatement; // 导入PreparedStatement类，用于预编译SQL语句
import java.sql.ResultSet; // 导入ResultSet类，用于处理查询结果
import java.sql.SQLException; // 导入SQLException异常类
import java.util.Scanner; // 导入Scanner类，用于从控制台接收输入

public class JDBCReg { // 定义一个公共类JDBCReg
    public static void main(String[] args) { // 定义main方法，程序的入口点
        try(Connection connection = DBUtil.getConnection(); // 获取数据库连接，使用try-with-resources自动关闭连接
        Scanner scanner = new Scanner(System.in); // 创建Scanner对象，用于从控制台接收输入
        ){

            System.out.println("请输入用户名:"); // 提示用户输入用户名
            String username = scanner.nextLine(); // 读取用户输入的用户名
            System.out.println("请输入密码:"); // 提示用户输入密码
            String password = scanner.nextLine(); // 读取用户输入的密码
            System.out.println("请输入昵称:"); // 提示用户输入昵称
            String nickname = scanner.nextLine(); // 读取用户输入的昵称
            System.out.println("请输入年龄:"); // 提示用户输入年龄
            String age = scanner.nextLine(); // 读取用户输入的年龄

            String sql1 = "SELECT username FROM userinfo WHERE username = ?"; // 构建SQL查询语句，检查用户名是否已存在
            PreparedStatement ps1 = connection.prepareStatement(sql1); // 创建PreparedStatement对象，用于执行预编译的SQL语句
            ps1.setString(1,username); // 绑定第一个参数，即用户名
            ResultSet rs1 = ps1.executeQuery(); // 执行查询，并获取结果集

            if(rs1.next()){ // 如果结果集非空，则表示用户名已存在
                System.out.println("用户名已存在");
            }else{ // 如果结果集为空，则表示用户名可用
                String sql2 = "INSERT INTO userinfo(username,password,nickname,age) VALUES(?,?,?,?)"; // 构建SQL插入语句，注册新用户
                PreparedStatement ps2 = connection.prepareStatement(sql2); // 创建PreparedStatement对象，用于执行预编译的SQL语句
                ps2.setString(1,username); // 绑定第一个参数，即用户名
                ps2.setString(2,password); // 绑定第二个参数，即密码
                ps2.setString(3,nickname); // 绑定第三个参数，即昵称
                ps2.setString(4,age); // 绑定第四个参数，即年龄

                int i = ps2.executeUpdate(); // 执行插入操作，并返回受影响的行数
                if(i>0){ // 如果受影响的行数大于0，则表示注册成功
                    System.out.println("注册成功");
                }else{ // 如果受影响的行数等于0，则表示注册失败
                    System.out.println("请稍后再尝试");
                }
            }
        } catch (SQLException e) { // 捕获SQLException异常
            throw new RuntimeException(e); // 将SQLException转换为RuntimeException并抛出
        }
    }
}

 */